Three dimensional object data

ABSTRACT

Apparatus and methods for transforming three dimensional object data are disclosed. In some examples, data representing a three dimensional object is received, the data comprising object property data indicative of at least one attribute of at least a portion of the three dimensional object. The object property data is transformed into a plurality of device independent object property data objects having a common data structure, each object property data object comprising a value indicative of each of a predetermined set of object properties.

BACKGROUND

Three dimensional objects generated by an additive manufacturing processmay be formed in a layer-by-layer manner. In one example of additivemanufacturing, an object is generated by solidifying portions of layersof build material in an apparatus. In examples, the build material maybe in the form of a powder, fluid or sheet material. The intendedsolidification and/or physical properties may be achieved by printing anagent onto a layer of the build material. Energy may be applied to thelayer and the build material on which an agent has been applied maycoalesce and solidify upon cooling. In other examples, chemical bindingagents may be used to solidify a build material. In other examples,three dimensional objects may be generated by using extruded plastics orsprayed materials as build materials, which solidify to form an object.

Some printing processes that generate three dimensional objects usecontrol data generated from a model of a three dimensional object. Thiscontrol data may, for example, specify the locations at which to applyan agent or combination of agents to build material, or where buildmaterial itself may be placed, and the amounts to be placed.

The control data may be generated from a representation of a threedimensional object to be printed. Such a representation may be referredto herein as a three dimensional model, and may be stored as a datafile. The control data may be used by suitable print apparatus toproduce an object.

BRIEF DESCRIPTION OF DRAWINGS

For a more complete understanding, reference is now made to thefollowing description taken in conjunction with the accompanyingdrawings in which:

FIG. 1 is a flowchart of an example of a method comprising objectproperty data transformation;

FIG. 2 is a schematic representation of an example of an object propertydata object;

FIG. 3 is a flowchart of another example of a method comprising objectproperty data transformation;

FIG. 4 is a simplified schematic of an example of processing apparatusfor generating control data for production of a three dimensionalobject; and

FIG. 5 is an example of an apparatus for storing and processing datarepresenting a three dimensional object.

DETAILED DESCRIPTION

Some examples described herein provide an apparatus and a method forrepresenting a three dimensional object and/or for generating controldata that may be used to produce a three dimensional object. Someexamples allow arbitrary three dimensional content with a variety ofspecified object properties to be processed and used to generate a threedimensional object. These object properties may comprise, for example,any or any combination of: conductivity, density, porosity, plasticity,hardness, ductility, strength, interlayer strength and/or appearanceproperties (color, transparency, glossiness, surface texture, etc).

In some examples herein, three dimensional space is characterised interms of ‘voxels’, i.e. three dimensional pixels, wherein each voxeloccupies a discrete volume. In data modelling a three dimensionalobject, a voxel at a given location may have at least onecharacteristic. For example, it may be empty, or may have a particularcolor or may represent a particular material, or a particular objectproperty, or the like. The voxels of an object may be the same size, forexample relating to a cubic or other shaped region in space, or may varyin size and/or form within an object.

In some examples, data representing a three dimensional object isprocessed to generate control data to be used in generating the object.

In some examples, a print material coverage specification specifiesprint material data, for example detailing the amount of print materials(such as agent(s) to be deposited onto a layer of build material, or insome examples, build materials themselves), and, if applicable, theircombinations. In some examples, this may be specified as a proportionalvolume coverage (for example, X % of a region of a layer of buildmaterial should have agent Y applied thereto). Such print materials maybe related to or selected to provide an object property.

The actual location at which each print material (for example, a drop ofan agent) should be applied, as specified in control data, may bedetermined using halftoning techniques.

For example, a set of voxels within object model data may have anassociated print material coverage specification in the form of a set ofmaterial volume coverage (Mvoc) vectors. In a simple case, such a vectormay indicate that X % of a given region of three dimensional spaceshould have a particular agent applied thereto, whereas (100-X) % shouldbe left clear of agent. In other examples, material combinations may bespecified. The material volume coverage vectors may then provide theinput for a halftoning process to generate control data that may be usedby an additive manufacturing system to produce a three dimensionalobject. For example, it may be determined that, to produce specifiedobject properties, 25% of a layer of build material (or of a portion ofa layer) should have an agent applied thereto. The halftoning processdetermines where the drops of agent fall in order to provide 25%coverage, for example by comparing each location to a threshold valueprovided in a halftone threshold matrix.

In some examples, data representing a three dimensional structure orobject is ‘rasterized’, i.e. converted to series of discrete locations.The rasterized data may be at the printable resolution of the threedimensional printing apparatus to which control data may be provided.

It may be the case that, at the time the three dimensional data model isconstructed, a print apparatus to be used to print the object isunspecified, at least in terms of its capabilities.

In block 102 of FIG. 1, data representing a three dimensional object isreceived, the data comprising object property data indicative of anattribute (for example, at least one physical attribute or property) ofat least a portion of the three dimensional object. In block 104, theobject property data is transformed into a plurality of deviceindependent object property data objects having a common data structure,the data objects each comprise a value indicative of each of apredetermined set (common) of object properties held within the commondata structure. As used herein, the term ‘device independent’ means thatthe data object is not formulated with a particular model generationapparatus, print apparatus, or print generation workflow in mind.Instead, it contains values representing a predetermined set ofproperties which can be derived from, and interpreted by, a range ofdevices, software packages and the like.

As the object property data object is device independent, it can be usedas an intermediate representation to map data from a range of datasources (such as CAD packages, object analysis apparatus, or any othersource of data representing an object) to control data for a particularprint apparatus (for example according to that print apparatus'capabilities to reproduce particular properties). When an objectproperty data object is to provide control data, use of a deviceindependent data object means that, whatever the original data format, amapping (for example, a lookup table or the like) from the deviceindependent data object can be used to generate control data for aparticular print apparatus. If the original object model representationwas instead used, then a mapping from that specific representation typewould have to be specified or determined, which may result in multiplemappings in order to support multiple object model data sources.Similarly, mapping from a particular model data source to the deviceindependent data object may be made without knowledge of a printapparatus.

In examples, content of a data object is specified independently of theproperties specified in a particular model, and/or independently of thecapabilities of a print apparatus used to generate an object accordingto the model. Properties specified in the object property data objectmay therefore be the same as the properties specified in received data(but may, in some examples, be described differently), or it maycomprise values relating to additional properties, and/or may containvalues relating to a subset of the properties specified in or derivablefrom the received data. This allows the data object to be used with awide range of data sources and to be used to generate control data for awide range of print apparatus. When compared to, for example, specifyingprinter colors for two-dimensional printing, in three dimensionalprinting there is a wide range of possible print apparatus capabilitiesand of possible data specifications for model data. A device independentdata object as specified herein may allow conversion between diversesets of specified and/or achievable properties.

An example of a device independent object property data object 200 isshown schematically in FIG. 2. In this example, the set of propertiescomprises three color values V_(R), V_(G), V_(B), representing Red,Green and Blue color values, a Density value V_(D), a stiffness valueV_(S), a conductivity value V_(C) and an opacity value V_(O). Otherobject properties which may be described in a data object may compriseany of, amongst others: flexibility; elasticity; rigidity; surfaceroughness; porosity; strength; ductility; plasticity or the like.

In some examples, a value set is predetermined for each property and thevalue is taken from the set. For example, a bit depth may be specifiedfor each property. For the set of values shown in FIG. 2, the bit depthmay for example be specified as [8, 8, 8, 5, 4, 1, 6]. In such anobject, the color values are specified with 8 bit resolution, and maytherefore take any value in the value set [0, 1, 2 . . . 254, 255]. 5bits (32 level resolution) are used to specify the density values, whichcan therefore take any value in the value set [0, 1, 2 . . . 30, 31]. 4bits (16 level resolution) are used to specify the stiffness values, 1bit (on/off, or [0, 1]) for conductivity, and 6 bits (64 levelresolution) for opacity. This results in a 5-byte encoding of the sevenproperty data object.

In some examples, a value set may be defined in terms of a particularunit. For example, in the case of the RGB values, these could beidentified according to device independent color definitions such assRGB. In other examples, colors could be defined in terms of a specificICC profile, or in terms of the International Commission on Illumination(CIE) 1931 XYZ color space, wherein three variables (‘X’, ‘Y’ and ‘Z’ ortristimulus values) are used to model a color; the CIE 1976 (L*, a*, b*-CIELAB or ‘LAB’) color space, wherein three variables representlightness (‘L’) and opposing color dimensions (‘a’ and ‘b’); or anyother color space or derived color space.

For example, in a simple case, an RGB color value may comprise three8-bit values; as such each red, green and blue value may be within therange of 0 to 255. Density values V_(D) could be expressed in kg/m3,stiffness V_(S) in N/m, conductivity V_(c) in S/m, and opacity V_(O) asa dimensionless optical density value representing a value between 0 and1 specifying a ratio of light transmitted through a specified thicknessof material to light blocked thereby. In some examples, rather thanbeing expressed in terms of absolute values, all values of a particularproperty may be indicative of a position within a range. In someexamples, data relating to the interpretation of at least one of thedata values may be generated and/or provided with the data objects. Insome examples, when a data object is used to generate control data, therange achievable by a particular print apparatus in relation to aparticular property could be considered and used to determine the devicedependent value within that range, i.e. a value achievable by aparticular print apparatus, which best represents the device independentvalue. Such a device-dependent interpretation may also be used in theabsence of a specification of units. Where data relating to theinterpretation of at least one of the data values is provided with thedata objects, this may be used in generating control data.

In some examples, default values may be defined. In examples, defaultvalues may be used wherever data property is undefined in at least aproportion of received object property data. The default values may beuser specified, predetermined or derived based on received model data.Where default values are used, this enables a standardised data objectto be formed even in the absence of explicitly defined values, andtherefore allows a data object having a consistent data format to begenerated from a diverse range of model data sources and formats. Insome examples, default values may for example be midpoints in the rangeavailable, or may be predetermined according to practical or economicconsiderations. For example, tensile strength or stiffness could bedetermined in view of a practical minimum value which allows an objectto be self supporting and reasonably robust, and/or bearing in mindcosts. Certain defaults may specify that a property is absent (forexample, as a default, conductivity, which may result in thespecification of use of specialised agents, may be set to off, or 0, ina data object unless conductivity is specified in the received datarepresenting a three dimensional object), or avoided (for example, aswhite can be a relatively expensive color to reproduce and thecombinations of other properties which may be achieved in a white objectmay be restricted, a default colour may be other than white, for examplea mid gray).

In some examples, value ranges corresponding to the encoding range maybe specified or determined. To give a particular example, opacity couldbe specified such that it may vary between absolute values of 0.1 to1.6, which may be highest value of density for a particular, or for ageneric, print apparatus (for example, the range may reflect an industrystandard achievable range). A maximum and/or minimum may be used in themapping, such that, for example, all stated absolute opacity values of0.1 or lower map to 0, which is the lowest value in the example 64 bitdata value set, and those of 1.6 or higher map to 63 which is thehighest value in the example 64 bit data value set. In examples, aspecifically stated maximum or minimum value (and/or a specific absolutevalue, which may be associated with any and all of the values of a valueset associated with a particular property) may be supplied with theobject model data. In other examples, a range may be derived from actualvalues provided within the model data (e.g., the highest stated densitymay map to 63, and the lowest stated density may map to 0, and/or therange may be stored). In other examples, defaults for a maximum valuemay be predefined or user specified. Allowing specification of a rangeallows a property range to be encoded efficiently, while allowing forchanges in achievable ranges. For example, if the interpretation of therange of values intended to be reflected by a particular encoding wasfixed, this may either span a range which is too large to be fullyutilized, or which fails to span the whole of an achievable range, inparticular should an achievable range increase after a property has beenencoded.

In some examples, the data representing the three dimensional objectfurther comprises object model data defining the geometry of the threedimensional object. The device independent data objects may be stored inassociation with a physical location (which may be a volume) within theobject, such that each location is accompanied with a list ofproperties.

The data objects may therefore comprise part of a device independentobject description. As this is not defined in relation to a particularprocessing or print apparatus, it may be used to generate control datafor or by any print apparatus with knowledge (or identification) of thedata structure and print apparatus capabilities.

A further example is discussed in relation to the flow chart of FIG. 3.In this example, in block 302, data representing a three dimensionalobject is received. The data comprises object property data indicativeof attributes of at least a portion of the three dimensional object andobject model data defining the geometry of the three dimensional object.

In bock 304, the object property data is transformed into deviceindependent object property data objects in which each value is a valuefrom a value set which is predetermined for each object property andunspecified object properties are assigned a default value. In block306, print apparatus data, which is indicative of the capabilities of aparticular print apparatus is received. In block 308, the set of objectproperty data objects is transformed into print control data is based onthe print apparatus data.

For example, a particular print apparatus may allow for density controlwhile other properties are fixed, whereas another may allow for colorcontrol, yet another for density and conductivity control, and so on. Insome examples, in order to acquire print apparatus data, a printapparatus may be queried and asked to return its capabilities. In otherexamples, this data may be predetermined, and/or retrieved from amemory, held in a look up table, or the like. In other examples, theprint apparatus may itself carry out the processing.

FIG. 4 shows an example of processing apparatus 400, comprising aninterface 402, a mapping module 404 and a control data module 406.

The interface 402 receives model data 408 and print apparatus capabilitydata 410. In this example, the model data 408 represents at least partof a three dimensional model object, and comprises a plurality of objectproperty data objects. Each data object has a common data objectstructure (for example, a data structure such as shown in the dataobject 200 of FIG. 2) and represents a location in a three dimensionalobject. Each data object comprise a plurality of property valuesdefining a predetermined set of properties of the three dimensionalobject at that location.

In some examples, the properties defined by each data value may beexplicitly defined. In other examples, they may be identified ordetermined by consideration of the data form or content. For example,the mapping module 402 may identify the properties specified by valuesof a data object based on at least one of the resolution to which thevalue is specified and the frequency with which a value with a givenresolution is contained within the data object. For example, anotherwise unspecified 3-channel 8-bit data portion of the data objectmay be interpreted as RGB data by default. If there is a single channeldata with a particular bit depth, this may be taken as the density valueand, in the absence of any specification, the density values therein maybe interpreted to match the range of densities the print apparatus iscapable of providing (such that a stated value of 0 maps to the minimumachievable density, etc). Other defaults may be predetermined in asimilar manner. This allows for the processing of even an ambiguouslydefined input, which may provide an alternative to aborting theprocessing operation if incompletely specified inputs are received.

The mapping module 404 in this example maps at least one received objectproperty data object to a print material coverage specificationaccording to the print apparatus capability data. Such mapping may becarried out in relation to a rasterized representation of the modelobject. In some examples, this representation may comprise a pluralityof planes, each rasterized into discrete locations. In some examples,the locations within the planes are binary: an object either exists at alocation and has associated properties, or it does not.

In some examples, at least one value of a data object is mapped to aprint material coverage specification based on the maximum and minimumvalues of that property achievable by the print apparatus, and/or themaximum and minimum values of the property within the object propertydata objects. As noted above, it may be that a scale or unit is notspecified for a particular property (which may be all the properties)and in such examples, a value provided in the data object may be takenas an indication of a point on a scale from 0-100%, or some other range,which may be user specifiable. The 100% point may be the maximum valuethat a particular property can have for a particular property (e.g. thestrongest red which can be produced, or the most dense construction,etc.). The 0% point may be the minimum value, which may represent thatthe property is absent (for example, no conductive agents, or no coloris to be used), or may indicate that the value is to have to the lowestpossible value (for example, density is at the minimum value). Withinthe data object, the maximum value may be the maximum value seen in aparticular set of data objects (this may result in the property beingmore diversely represented in the printed object), or the maximum valuegiven the range (for example, the bit depth).

In some examples, the interpretation of the data objects is determinedor controlled by a user, who may chose to restrict the print apparatuscapabilities in relation to a particular property and/or printingoperation. In other examples, the range of at least one property may berestricted or specified by a maximum and/or minimum provided with theset of data objects. In other examples, as noted above, an absolutevalue (for example in standardised units) may be associated with any oreach of the values in a value set for a particular property.

In summary therefore, in some examples, the interpretation of a datavalue may depend on any, or any combination of: a stated value range,the range of data values within a set of data objects, additionalinformation concerning a relationship between an absolute value and avalue in the data object, the print apparatus capabilities, userspecification, default values.

The data objects may be mapped to Material volume coverage (Mvoc)vectors. An Mvoc vector may have a plurality of values, wherein eachvalue defines a proportion for each, or each combination of printmaterials in an addressable location of a layer of the three dimensionalobject. For example, in an additive manufacturing system with twoavailable print materials (for example, agents)—M1 and M2, where eachprint material may be independently deposited in an addressable area ofa layer of the three dimensional object, there may be 2² (i.e. four)proportions in a given Mvoc vector: a first proportion for M1 withoutM2; a second proportion for M2 without M1; a third proportion for anover-deposit (i.e. a combination) of M1 and M2, e.g. M2 deposited overM1 or vice versa; and a fourth proportion for an absence of both M1 andM2. In this case an Mvoc vector for a rasterized layer within a modelmay be: [M1, M2, M1M2, Z] or with example values [0.2, 0.2, 0.5,0.1]—i.e. in a given addressable location in a layer, there is a 20%probability of M1 being applied without M2, 20% probability of M2without M1, 50% probability of M1 and M2 and 10% probability that thelocation is empty. As each value is a proportion and the set of valuesrepresent the available material combinations, the set of values in eachvector sum to 1 or 100%.

For example, in a case where the agents are colored, then the Mvocvector may be determined to select agent combinations that generate amatch with a supplied object property values, e.g. the supplied RGBvalues in an object property data object. In examples, such mappings maybe held in a lookup table or the like.

The print apparatus capability data 410 in this example comprises anindication of at least one available print material. In other examples,it may comprise an indication of the print resolution, i.e. the level ofdetail with which object geometry and/or local object properties may bereproduced. In other examples, the print apparatus capability data 410may comprise an indication of the range of values available for at leastone object property. For example it may be that on a particular printapparatus, it is not possible to vary a particular parameter such thatparticular properties such as color, conductivity or density, but otherproperties may be varied. As such, the print material coveragespecification may represent properties which are achievable by the printapparatus, which may be different from those specified in the deviceindependent data objects.

The control data module 406 is to generate control data 412 from theprint material coverage specification, the control data 412 being forthe production of a three dimensional object. In this example, thecontrol data module 406 comprises a halftone module 414 to providehalftoning data.

In this example, the halftone data comprises an array of thresholdvalues. In one example, the threshold values are for carrying out ahalftone operation that compares a value of the threshold matrix againsta value indicative of a print material (such as an agent(s) or agentcombination) probability distribution, which in this example isexpressed as an Mvoc vector. This chooses a single ‘state’ (one of thepossible materials or material combinations) based on the thresholdvalue. Such halftone thresholds may be determined according tohalftoning techniques such as void-and-cluster matrices, error diffusiontechniques, dither based techniques, AM-screens, cluster-dot typepatterns etc.

In a particular example, the model data comprises a three dimensionalmodel object comprising an array of voxels representing a threedimensional model object, each voxel being located at a unique threedimensional location. The voxels may be of the same size and/or form, ormay vary in size and/or form. Each voxel is associated with a deviceindependent object property data object specifying the object propertiesfor that voxel. The control data module 406 determines, for each voxel,from print apparatus capabilities indicating the available printmaterials and, in some examples, the resolution with which the printmaterials may be applied by the print apparatus, a combination of printmaterials to represent the property values. Each voxel representing thethree dimensional model object is then mapped to a print materialcoverage specification, which specifies print materials as proportionsof a set of available print materials at a location. The print materialcoverage specification may be used to generate control data as outlinedabove.

In some examples, if a print apparatus cannot provide a particularproperty, or a particular property combination, an alert may begenerated and for example displayed or otherwise relayed to a user. Insome examples, a processing or printing operation may be aborted.

FIG. 5 shows a memory 500 associated with a processor 502. The memory isa computer readable medium for storing data for access by an applicationprogram being executed by the processor 502 and comprises a datastructure including information for use by the application program. Thedata structure comprises a plurality of data objects 504. Each dataobject 504 has a common data object structure and represents a set ofphysical properties of a three dimensional object, wherein each physicalproperty is specified as one of a predetermined set of values. Eachvalue may comprise either a default value or an assigned value (whereinthe assigned value may be assigned based on object property data). Inone example, the object properties comprise: at least one color, and atleast one of stiffness, opacity, conductivity and density. In someexamples the data objects 504 may have a data structure having any ofthe properties described above in relation to FIG. 2. In some examples,each data object 504 is associated with a location within the threedimensional object.

Examples in the present disclosure can be provided as methods, systemsor machine readable instructions, such as any combination of software,hardware, firmware or the like. Such machine readable instructions maybe included on a computer readable storage medium (including but notlimited to disc storage, CD-ROM, optical storage, etc.) having computerreadable program codes therein or thereon.

The present disclosure is described with reference to flow charts and/orblock diagrams of the method, devices and systems according to examplesof the present disclosure. Although the flow diagrams described aboveshow a specific order of execution, the order of execution may differfrom that which is depicted. Blocks described in relation to one flowchart may be combined with those of another flow chart. It shall beunderstood that each flow and/or block in the flow charts and/or blockdiagrams, as well as combinations of the flows and/or diagrams in theflow charts and/or block diagrams can be realized by machine readableinstructions.

The machine readable instructions may, for example, be executed by ageneral purpose computer, a special purpose computer, an embeddedprocessor or processors of other programmable data processing devices torealize the functions described in the description and diagrams. Inparticular, a processor or processing apparatus, such the processingapparatus 400 or the processor 502, may execute the machine readableinstructions. Thus functional modules of the apparatus and devices maybe implemented by a processor executing machine readable instructionsstored in a memory, or a processor operating in accordance withinstructions embedded in logic circuitry. The term ‘processor’ is to beinterpreted broadly to include a CPU, processing unit, ASIC, logic unit,or programmable gate array etc. The methods and functional modules mayall be performed by a single processor or divided amongst severalprocessors.

Such machine readable instructions may also be stored in a computerreadable storage that can guide the computer or other programmable dataprocessing devices to operate in a specific mode.

Such machine readable instructions may also be loaded onto a computer orother programmable data processing devices, so that the computer orother programmable data processing devices perform a series ofoperations to produce computer-implemented processing, thus theinstructions executed on the computer or other programmable devicesprovide a means for realizing functions specified by flow(s) in the flowcharts and/or block(s) in the block diagrams.

Further, the teachings herein may be implemented in the form of acomputer software product, the computer software product being stored ina storage medium and comprising a plurality of instructions for making acomputer device implement the methods recited in the examples of thepresent disclosure.

While the method, apparatus and related aspects have been described withreference to certain examples, various modifications, changes,omissions, and substitutions can be made without departing from thespirit of the present disclosure. It should be noted that theabove-mentioned examples illustrate rather than limit what is describedherein, and that those skilled in the art will be able to design manyalternative implementations without departing from the scope of theappended claims. In particular, a feature or block from one example maybe combined with or substituted by a feature/block of another example

The word “comprising” does not exclude the presence of elements otherthan those listed in a claim, “a” or “an” does not exclude a plurality,and a single processor or other unit may fulfil the functions of severalunits recited in the claims.

The features of any dependent claim may be combined with the features ofany of the independent claims or other dependent claims.

1. A method comprising: receiving data representing a three dimensionalobject, the data comprising object property data indicative of at leastone attribute of at least a portion of the three dimensional object;transforming the object property data into a plurality of deviceindependent object property data objects having a common data structure,each object property data object comprising a value indicative of eachof a predetermined set of object properties.
 2. A method according toclaim 1, in which each value is a value from a value set which ispredetermined for each object property.
 3. A method according to claim 1comprising, if no indication of a property of the property set isprovided in the received data for at least a portion of the threedimensional object, setting a value for that property in an objectproperty data object to a default value.
 4. A method according to claim1 in which the received data representing the three dimensional objectfurther comprises object model data defining the geometry of the threedimensional object.
 5. A method according to claim 1 which furthercomprises transforming the set of object property data objects intoprint control data.
 6. A method according to claim 5, which furthercomprises receiving print apparatus data indicative of the capabilitiesof a print apparatus, and wherein transforming the set of objectproperty data objects into print control data is based on the printapparatus data.
 7. Processing apparatus, comprising: an interface toreceive model data and print apparatus capability data, the model datarepresenting at least a portion of a three dimensional object andcomprising a plurality of device independent object property dataobjects, each object property data object having a common data objectstructure and representing a location in a three dimensional object,wherein each object property data object comprises a plurality ofproperty values defining a predetermined set of properties of the threedimensional object at that location; a mapping module to map each objectproperty data object to a print material coverage specificationaccording to the print apparatus capability data.
 8. Processingapparatus according to claim 7 in which the print apparatus capabilitydata comprises an indication of at least one of an available printmaterial and a resolution with which a print material may be applied bythe print apparatus, and the print material coverage specification isdetermined so as to provide an achievable representation of at least onevalue specified in the object property data object.
 9. Processingapparatus according to claim 7 in which at least one value of an objectproperty data object is mapped to a print material coveragespecification based on the maximum and minimum values of that propertyachievable by the print apparatus, and the maximum and minimum values ofthe property within the received object property data objects. 10.Processing apparatus according to claim 7 in which the mapping module isto identify the properties specified by values of an object propertydata object based on at least one of the resolution to which the valueis specified and the frequency with which a value with a givenresolution is contained within the object property data object. 11.Processing apparatus according to claim 7 further comprising a controldata module to generate control data from the print material coveragespecification, the control data being for the production of a threedimensional object.
 12. Processing apparatus according to claim 7 inwhich: the model data comprises a three dimensional model objectcomprising an array of voxels representing a three dimensional object,each voxel being located at a unique three dimensional location andbeing associated with an object property data object; and the printcapability data comprises data indicative of at least one availableprint material of a print apparatus; wherein the mapping module is todetermine, for each voxel, a combination of print materials to representthe values within the object property data object for that voxel; and tomap each voxel to a print material coverage specification, the printmaterial coverage specification specifying print materials asproportions of a set of available print materials.
 13. A computerreadable medium storing data for access by an application program beingexecuted by a processor, comprising: a data structure stored in saidcomputer readable medium, said data structure including information foruse by the application program and comprising: a plurality of dataobjects, each data object having a common data object structure andrepresenting a set of physical properties of a three dimensional object,wherein each physical property is specified as one of a predeterminedset of values, each of the values being either a default value or anassigned value.
 14. A computer readable medium according to claim 13 inwhich the object properties comprise: at least one color, and at leastone of stiffness, opacity, conductivity and density.
 15. A computerreadable medium according to claim 13 in which each data object isassociated with a location within the three dimensional object.